package Movimientos;

import Naves.*;

import java.awt.Point;

import Juego.Nivel;
import Componentes.Colisionador;
import GUI.Grafica;
import Componentes.Componente;

public class MovEnemigo extends Movimiento {

	protected NaveJugador jugador;
	
	public MovEnemigo(Nivel n, Grafica g,NaveJugador jugador){
		nivel = n;
		graph=g;
		empezar();
		this.jugador = jugador;
	}
	
	public void empezar(){
		start();
	}
	
	public void run(){
		try{
			while(!nivel.obtenerNavesEnemigas().isEmpty()){
			sleep(1000);
			Colisionador<NaveEnemiga> col = new Colisionador<NaveEnemiga>();  
			
			for(NaveEnemiga nave: nivel.obtenerNavesEnemigas()){
				while(nave.getY()<600){
				Point corrimiento = new Point();
				corrimiento.setLocation(nave.getX(), nave.getY()+nave.obtenerVelocidad());
				nave.mover(corrimiento);
				getGUI().repintarComponentes();
				
				Componente comp = col.colision(jugador,nivel.obtenerNavesEnemigas());
				if (comp != null) {
				   getGUI().repintarComponentes();
				   if(nave.obtenerResistencia()<=0){
					   /*Se eliminaria un elemento de la lista la cual estoy recorriendo con el for-each
					   por lo que deberia reinicializar el bucle del for-each con la lista actualizada*/
					   break;
				   }
				   }
				sleep(15);
				}
				
			}
		  }
		} catch(InterruptedException e){
			System.out.println(e.getMessage());
		}
		
		
	}
	
}
